<?php
/**
 * 上传图片
 * 1.限制文件的类型，防止注入php或其他文件，提升安全
 * 2.限制文件的大小，减少内存压力
 * 3.防止文件名重复，提升用户体验
 * 4.保存文件
 */

//判断上传的文件是否出错,是的话，返回错误
// var_dump($_GET('type'));
$msg = [];
$msg['file_path'] = '';
if($_FILES["file"]["error"]){
    $msg['code'] = 404;
    $msg['msg'] = '上传文件错误';
}else{
    $allow_type = array('jpg','jpeg','gif','png'); //定义允许上传的类型
    $type = explode('/',$_FILES["file"]["type"])[1];
    //判断文件类型是否被允许上传
    if(in_array($type, $allow_type)){           //判断类型是否正确
        $filename =$_SERVER['DOCUMENT_ROOT']."/blog_system/home/view/images/{$_GET['type']}/".time().'_'.rand(1000, 9999); 
        //转码，把utf-8转成gb2312,返回转换后的字符串， 或者在失败时返回 FALSE。
        $filename =iconv("UTF-8","gb2312",$filename);
            //检查文件或目录是否存在
        if(file_exists($filename)){
            echo"该文件已存在";
        }else{
            //保存文件,   move_uploaded_file 将上传的文件移动到新位置  
            if(move_uploaded_file($_FILES["file"]["tmp_name"],$filename)){  //将临时地址移动到指定地址
                // require_once './imgcompress.php';
                // $source =  $filename;//原图片名称
                // $dst_img = $filename;//压缩后图片的名称
                // $percent = 1;  #原图压缩，不缩放，但体积大大降低
                // $image = (new imgcompress($source,$percent))->compressImg($dst_img);
                // var_dump($image);
                // exit();
                // // unlink($filename);
                // fopen($filename);
                // fwrite($filename,$image);
                // fclose($file);
                $msg = [];
                $msg['code'] = 200;
                $msg['msg'] = '上传成功';
                $msg['file_path'] = 'http://'.$_SERVER['HTTP_HOST'].substr($filename,16);
            }else{
                $msg['code'] = 404;
                $msg['msg'] = '服务器错误';
            }
        }        
    }else{
        $msg['code'] = 404;
        $msg['msg'] = '文件类型不允许或者图片过大';
    }
}
//返回数据
echo json_encode($msg);